package bishiqiangxun;
import java.util.*;
public class Test3 {
    //笔试强训day40第三题 : 合唱队列
    //动态规划  最长上升子序列
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        //动态规划 以每个点为最高点 找最长上升子序列  和最长下降子序列
        //这个最长下降子序列 其实可以倒过来 填写 也是最长上升子序列
        int n = in.nextInt();
        int[] arr = new int[n+1];
        for(int i = 1; i <= n; i++) {
            arr[i] = in.nextInt();
        }

        //定义两个dp表
        int[] dp1 = new int[n+1];
        int[] dp2 = new int[n+1];

        for(int i = 1; i <= n; i++) {
            dp1[i] = 1;
            for(int j = 1; j < i; j++) {
                if(arr[j] < arr[i]) {
                    //直接加在后面
                    dp1[i] = Math.max(dp1[i],dp1[j] + 1);
                }
            }
        }

        for(int i = n; i>= 1; i--) {
            dp2[i] = 1;
            for(int j = i+1; j <= n; j++) {
                if(arr[i] > arr[j]) {
                    dp2[i] = Math.max(dp2[i],dp2[j] +1);
                }
            }
        }

        //填完表之后 找出最长的
        int max = 0;
        for(int i = 1; i <= n; i++) {
            max = Math.max(max,dp1[i] + dp2[i] - 1);
        }

        System.out.println(n-max);
    }
}
